﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

using AplicacionTest.BussinessLogic;
using AplicacionTest.DataType;
using AplicacionTest.Web.AppCode;

namespace AplicacionTest.Web.Forms.Compartido
{
    public partial class PaginaPrueba : System.Web.UI.Page
    {
        [WebMethod]
        public static KeyValuePair<List<ProyectoType>, int> ListarProyectos(ProyectoType registroBusqueda,int paginaActual, int cantidadMostrar, string orderBy)
        {
            ProyectoLogic logic = new ProyectoLogic();

            List<ProyectoType> lista = logic.CargarExploradorPaginado(registroBusqueda,paginaActual, cantidadMostrar, orderBy);

            KeyValuePair<List<ProyectoType>, int> l = new KeyValuePair<List<ProyectoType>, int>(lista, lista.Capacity);

            return l;
        }

        [WebMethod]
        public static ProyectoType CargarProyecto(string idProyecto)
        {
            if (idProyecto == "0") return new ProyectoType(); 

            ProyectoLogic logic = new ProyectoLogic();

            ProyectoType proyecto = logic.CargarPorId(idProyecto);

            return proyecto;
        }

        [WebMethod]
        public static KeyValuePair<ProyectoType, bool> GrabarProyecto(ProyectoType proyecto)
        {
            ProyectoLogic logic = new ProyectoLogic();

            bool nuevo = (proyecto.Id == null);

            proyecto = logic.GrabarProyecto(proyecto);

            return new KeyValuePair<ProyectoType,bool>(proyecto,nuevo);
        }

        [WebMethod]
        public static string EliminarProyecto(string idProyecto)
        {
            ProyectoLogic logic = new ProyectoLogic();

            logic.Eliminar(idProyecto);

            return idProyecto;
        }


        [WebMethod]
        public static string ExportarExcel(ProyectoType registroBusqueda,List<GridJSONField> gridFields)
        {
            ProyectoLogic logic = new ProyectoLogic();

            List<ProyectoType> lista = logic.CargarExploradorPaginado(registroBusqueda,0,0,"");

            return SoporteUI.FileTableHTMLGridJSON(lista,gridFields,"FileServer","Andrei","Proyectos","xls");
        }
    }
}